/**
 * 给定两个整数 n 和 k，返回范围 [1, n] 中所有可能的 k 个数的组合。
 * 可以按 任何顺序 返回答案。
 * 1 <= n <= 20
 * 1 <= k <= n
 */

#include<vector>
using namespace std;
/**
 * 方法1：回溯法
 * 
 */
class Solution {
public:
    vector<vector<int>> combine(int n, int k) {

    }
};


/**
 * 方法2：利用组合数性质
 * C(n,m)=C(n,n-m)=C(n-1,m-1)+C(n-1,m)
 */
class Solution_2 {
public:
    vector<vector<int>> combine(int n, int k) {
        if(k == 1){
            vector<vector<int>> ans(n);
            for(int i=1; i<=n; i++){
                
            }
        }

    }
};